package com.fanben100.gui;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.TextAttribute;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.text.AttributedCharacterIterator;
import java.text.AttributedString;

import com.fanben100.gui.i18n.ResourceContext;

/**
 * 
 * @author CYC
 * 
 */
public class TitleSurface extends Surface {

	ResourceContext rt = ResourceContext.getInstance("TerminalFrame");
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public TitleSurface() {
		// setBackground(Color.white);
	}

	public void render(int w, int h, Graphics2D g2) {
		String title = rt.getString("surfaceTitle", "TerminalFrame");
		FontRenderContext frc = g2.getFontRenderContext();
		Font f = new Font("宋体", Font.PLAIN, 40);
		Font f1 = new Font("sansserif", Font.ITALIC, w / 18);
		String s = title;// "AttributedString";
		AttributedString as = new AttributedString(s);
		as.addAttribute(TextAttribute.FONT, f, 0, title.length());
		// as.addAttribute(TextAttribute.FONT, f1, 10, s.length());
		AttributedCharacterIterator aci = as.getIterator();
		TextLayout tl = new TextLayout(aci, frc);
		float sw = (float) tl.getBounds().getWidth();
		float sh = (float) tl.getBounds().getHeight();
		Shape sha = tl.getOutline(AffineTransform.getTranslateInstance(0, h
				* 0.5 + sh / 2));
		// g2.setColor(Color.magenta);
		g2.setStroke(new BasicStroke(1.5f));
		// g2.draw(sha);
		g2.setColor(Color.blue);
		g2.fill(sha);

		// f = new Font("serif", Font.BOLD, w / 6);
		// tl = new TextLayout("Outline", f, frc);
		// sw = (float) tl.getBounds().getWidth();
		// sh = (float) tl.getBounds().getHeight();
		// sha = tl.getOutline(AffineTransform.getTranslateInstance(
		// w / 2 - sw / 2, h * 0.5 + sh / 2));
		// g2.setColor(Color.black);
		// g2.draw(sha);
		// g2.setColor(Color.red);
		// g2.fill(sha);
		//
		// f = new Font("sansserif", Font.ITALIC, w / 8);
		// AffineTransform fontAT = new AffineTransform();
		// fontAT.shear(-0.2, 0.0);
		// Font derivedFont = f.deriveFont(fontAT);
		// tl = new TextLayout("Italic-Shear", derivedFont, frc);
		// sw = (float) tl.getBounds().getWidth();
		// sh = (float) tl.getBounds().getHeight();
		// sha = tl.getOutline(AffineTransform.getTranslateInstance(
		// w / 2 - sw / 2, h * 0.80f + sh / 2));
		// g2.setColor(Color.green);
		// g2.draw(sha);
		// g2.setColor(Color.black);
		// g2.fill(sha);
	}

}
